<?php

class deelnemertoevoegen extends formEngine {
    
    protected $formName = 'deelnemertoevoegen';
    protected $resultAction = 'function';
    protected $resultFunction = 'parent.deelnemerToevoegenTabel(response.parameters)';
    protected $errorType = 'alert';
    
    # Voeg hier componenten toe aan het formulier
    public function load($page) {
        
        # Add some components to the form
        $this->addComponent('textfield', array('label' => 'Voornaam', 'value' => '', 'name' => 'voornaam'));
        $this->addComponent('textfield', array('label' => 'Achternaam', 'value' => '', 'name' => 'achternaam'));
        $this->addComponent('textfield', array('label' => 'Adres', 'value' => '', 'name' => 'adres'));
        $this->addComponent('textfield', array('label' => 'Woonplaats', 'value' => '', 'name' => 'woonplaats'));
        $this->addComponent('textfield', array('label' => 'Postcode', 'value' => '', 'name' => 'postcode', 'cssClass' => 'postcode'));
        $this->addComponent('textfield', array('label' => 'Geboortedatum', 'value' => '', 'name' => 'geboortedatum'));
        
        $values = array('m'=>'Man','v'=>'Vrouw');
        $this->addComponent('selectfield', array('label' => 'Geslacht', 'value' => $values, 'name' => 'geslacht', 'cssClass' => 'geslacht', 'emptyOption' => true));
        
        $this->addComponent('textfield', array('label' => 'E-mail', 'value' => '', 'name' => 'email'));
        
        $this->addComponent('button', array('value' => 'Toevoegen', 'cssClass' => 'buttonDoorgaan'));
        
        parent::load($page);
        
    }
    
    # Zodra de gebruiker op opslaan drukt kun je hier de waarden van het formulier controleren
    public function validate(&$values) {
        
        try {
            shoestringConstraints::checkBeschikbaar(
                $_SESSION['besteltraject']['planningid'],
                sizeof($_SESSION['besteltraject']['deelnemers'])+1);

            $values['voornaam'] = shoestringConstraints::formatVoornaam($values['voornaam']);

            if(strlen($values['achternaam']) == 0){
                throw new Exception('Achternaam moet worden ingevuld');
            }

            if(strlen($values['adres']) == 0){
                throw new Exception('Adres moet worden ingevuld');
            }

            if(strlen($values['woonplaats']) == 0){
                throw new Exception('Woonplaats moet worden ingevuld');
            }

            $values['postcode'] = shoestringConstraints::formatPostcode($values['postcode']);

            shoestringConstraints::checkGeboortedatum($values['geboortedatum'], $_SESSION['reisinfo']['max_leeftijd']);
						
            if($values['geslacht'] == -1){
                throw new Exception('Geslacht moet worden ingevuld');
            }
	        
            shoestringConstraints::checkEmail($values['email']);
            
        } catch (Exception $e) {
        	return $e->getMessage();
        }
	         
        return true;
        
    }
    
    # Zodra de functie validate true geeft kun je in onderstaande functie de waarden opslaan
    public function save($values) {
        
        # Creeer een uniek nummer voor iedere deelnemer
        $deelnemerID = ceil(rand(100000,100000) * microtime());
        
        # Voeg de deelnemer toe
        $_SESSION['besteltraject']['deelnemers'][$deelnemerID] = $values;
        
        # Javascript gaat de values vanaf hier toevoegen aan html
        $this->resultParameters = $values;
        
        return true;
        
    }
    
}

?>
